Game playing system with assignable attack icons

ABSTRACT

A video game player can easily target and attack one or more enemies in a video game environment. The player may quickly designate an enemy on a display screen as a target and associate the enemy with a controller button on a video game controller. When the game player actuates the controller button, a player character initiates an attack on the targeted enemy that is assigned or associated with the button. The character initiates the attack on the enemy regardless of whether the character is facing toward the enemy or away from the enemy. If multiple enemies are present and multiple controller buttons are available, the player can choose which enemy will be targeted and associated with a controller button. This allows the player flexibility in choosing which enemies to attack. The player can also associate additional enemies with different buttons on a controller. The player can then initiate successive attacks on the additional enemies by actuating the buttons associated with the enemies.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional and claims the priority benefit of U.S.patent application Ser. No. 09/773,452 filed Jan. 31, 2001 and entitled“Game Playing System with Assignable Attack Icons,” the disclosure ofwhich is incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to video games and, moreparticularly, to targeting and attacking of objects in a video gamesystem.

2. Description of the Related Art

In a video game, a game player is commonly represented by a video gamecharacter that can move about a virtual environment displayed on adisplay screen. The game player typically controls the character'sactions using a video game controller that includes a joystick and oneor more buttons. In one common type of game, the character encountersvarious scenarios throughout the course of the game. Such scenarioscould include a competition scenario where the character competesagainst an opponent or a combat scenario where the character is requiredto fight and conquer one or more threats or enemies. The enemiestypically approach the character from one or more directions on thedisplay screen and then attack the character. The player uses the videogame control to move the character and cause the character to attackenemies or defend against the enemy attacks using a weapon.

In order to engage an opponent or attack an enemy, the game playertypically uses a joystick or direction button on the controller tomaneuver the character so that the character is facing the enemy. Thegame player then presses a controller button, which is a button on thecontroller that causes the character to initiate an attack action, suchas jabbing a sword or throwing a punch. The controller may includemultiple controller buttons, each of which is associated with an attackaction. Typically, a controller button is fixedly associated with anattack action. That is, when the player presses the button, the videogame character always initiates the attack action regardless of whetherthe character is actually facing an enemy or even near an enemy.

It can be appreciated that video game combat is simplest when there arefew enemies present simultaneously on the display screen, thereby makingit relatively easy for the game player to correctly maneuver thecharacter into an attack position so that the attack action has anaffect on the desired enemy. For example, if there is only one enemy onthe display screen, the game player can concentrate attention on thesingle enemy. Consequently, the game player can orient the character toface that enemy and initiate an attack on the enemy with relative ease.

However, as the number of enemies on the display screen increases, itbecomes increasingly difficult for the player to attack specificenemies. The character may be surrounded by several enemies each ofwhich moves about, making it difficult for the game player to correctlymaneuver the character to face a specific enemy. The sheer number ofenemies may also make it difficult for the game player to discern whenthe character is actually facing a specific enemy for attack. Forexample, if several enemies are grouped closely together, it may beunclear to the game player exactly which enemy the character is facingand, consequently, which enemy the character will attack upon pressingof the controller button. Unfortunately, this may result in thecharacter initiating an attack on one enemy when the player actuallyintended to initiate an attack on a different enemy.

Another problem associated with simultaneously confronting multipleenemies is that it becomes difficult for the game player to attack asuccession of different enemies. Under the conventional attack method,the game player has to orient the character toward a first enemy andthen attack that enemy. In order to subsequently attack a second enemy,the game player must first maneuver the character so that the characteris facing the second enemy. This can become quite cumbersome for theplayer, particularly if the second enemy is located at an awkwardposition relative to the character, such as behind the character or at adistance removed from the character. This often results in the playerfumbling with the joystick and losing an attack opportunity. Therequirement of re-orienting the character to the second enemy also takestime, which can be detrimental in an action game where characters mustsuccessfully and quickly attack enemies with success or otherwise riskincurring damage from the enemies.

The significance of the aforementioned problems only increases as thegraphics processing power of video game systems increases. Modern videogame systems are able to display and control an increasing number ofenemy characters on the video game display at one time. Thus, it isbecoming even more difficult and cumbersome for game players to targetand attack specific enemies in a video game environment.

One way of overcoming the difficulty in targeting and attacking enemiesis to simply provide the video game character with a larger weaponhaving a relatively large attack range. A larger attack range increasesthe likelihood of a successful attack regardless of whether thecharacter is correctly oriented to an enemy. Consequently, largerweapons provide the game player with a greater margin of error inorienting the character relative to an enemy. For example, if thecharacter is equipped with a small sword with a small attack range, thenthe player may have to precisely orient the character relative to anenemy in order to successfully attack the enemy. However, if thecharacter is equipped with a large battle axe, then the character needonly swing the battle axe in the vicinity of the enemy and rely on thelarge range of the weapon to encompass the enemy.

Unfortunately, such a solution results in a “hack and slash” combatscenario where the game player can disregard the video game character'sorientation relative to an enemy. The player simply moves the characterthrough a battle scene and wildly presses the controller button, hopingthat the wide range of the resultant attacks will include a great numberof enemies. While such hack and slash games can be fin, they are alsosimplistic and can result in the video game player quickly losinginterest in the game. As game systems become more sophisticated, gameplayers are demanding a richer and more realistic video game experiencethat both challenges the player and more closely simulates a real worldscenario. Game players are also demanding an environment that providesgreater opportunity to demonstrate game playing skills, such asshowboating or using flourish or signature moves.

In a real world combat situation, an experienced fighter surrounded bymultiple enemies could quickly target a specific enemy for attack andthen successfully initiate an attack on the enemy. Additionally, in areal world situation, an experienced fighter could initiate attacks evenif the fighter were not facing the enemy. Consequently, it would enrichthe video game experience to allow players to easily and quickly targetand attack specific enemies in a combat scenario.

SUMMARY OF THE INVENTION

The system and methods disclosed herein provide a video game environmentwherein a video game player can easily designate multiple objects in thevideo game environment so as to target and attack one or more enemies orengage one or more opponents in video game competition. The systemallows a player to quickly designate a candidate object on a displayscreen as a target for attack and assign or associate the candidateobject with an interface, such as a control button, on a video gamecontroller. A display indicator shows the objects that are candidatesfor assignment or association. When the game player actuates the controlbutton, a player character initiates an action, such as an attack, onthe designated object that is associated with the button. The characterinitiates the attack on the enemy regardless of whether the character isfacing toward the enemy or away from the enemy. If multiple enemies arepresent and multiple controller buttons are available, the player canchoose which enemy will be targeted and associated with a controllerbutton. This allows the player flexibility in choosing which enemies toattack. The player can also associate additional enemies with each ofthe buttons on a controller. The player can then initiate successiveattacks on the additional enemies by actuating the buttons associatedwith the enemies.

In one aspect of the invention, candidate objects may be designated withrespect to an initial object in a virtual environment of an informationprocessing system. The method may comprise: displaying one or morecandidate objects on a display screen; displaying a candidate rangeindicator on the display screen in response to actuation of a candidateinput interface on an input device, the candidate range indicatorcomprising a visual indication of a candidate range for the initialobject; displaying a visual indication in association with a firstcandidate object in response to the first candidate object intersectingat least a portion of the candidate range indicator on the displayscreen, the visual indication being associated with a first designationinput interface on the input device; and causing a predetermined actionfrom the initial object with respect to the first candidate object inresponse to actuation of the first designation input interface. Otherfeatures and advantages of the present invention should be apparent fromthe following description of the preferred embodiment, whichillustrates, by way of example, the principles of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of a video game system constructed inaccordance with the present invention.

FIG. 2 is an illustration of a video game controller of the video gamesystem illustrated in FIG. 1.

FIG. 3 is a block diagram of a hardware configuration of the video gamesystem.

FIG. 4 is an illustration of a display screen produced by the video gamesystem, showing a player character and several enemy characters.

FIG. 5 is an illustration of several exemplary target range indicatorsthat are displayed in association with a player character.

FIG. 6 is a flow diagram that illustrates the processing steps executedby the video game system to allow a game player to target one or moreenemies for attack.

FIG. 7 is an illustration of a display screen produced by the video gamesystem, showing a player character targeting an enemy character forattack and the corresponding controller actuation that would generatesuch targeting.

FIG. 8 is an illustration of a display screen produced by the video gamesystem, showing a player character targeting a pair of enemy charactersfor attack.

FIG. 9 is a flow diagram that illustrates additional processing stepsexecuted by the video game system to allow a game player to target oneor more enemies for attack.

FIG. 10 is an illustration of a display screen produced by the videogame system, showing a player character targeting a subsequent enemy forattack.

FIG. 11 is a flow diagram that illustrates the processing steps executedby the video game system to allow a game player to attack a targetedenemy.

FIG. 12 is an illustration of a display screen produced by the videogame system, showing a player character and a targeted enemy characterin attack range.

FIG. 13 is an illustration of a block diagram showing an exemplarysoftware structure for implementing a targeting and attack scheme for avideo game.

DETAILED DESCRIPTION

FIG. 1 is a schematic illustration of an information processing or videogame system 100. The video game system 100 includes a video game mainunit 110 and one or more controllers 120 that are communicativelycoupled to the main unit 110 via respective controller interfaces 125 onthe main unit 110. The controllers 120 each comprise an input device forreceiving user instructions.

The video game system 100 interfaces with an audio-visual (AV) outputdevice 135 that is communicatively coupled to the main unit 110. The AVoutput device 135 includes a display screen 140 for displaying imagedata in accordance with signals received from the main unit 110. The AVoutput device 135 also includes one or more sound speakers 145 foroutputting audio data in accordance with signals received from the mainunit 110.

The main unit includes a program reader 150 that is configured toreceive a game program storage medium, such as such as a magnetic floppydisk, an optical CD-ROM disc, a CD-R disc, a CD-RW disc, a DVD disk, orthe like. The game program storage medium is a recording medium forsupplying an application program such as a video game to the main unit110. The main unit 110 is configured to process information and toexecute the program instructions located on the game program storagemedium. The main unit 110 outputs image and sound data to the AV outputdevice 135 in accordance with the program instructions. The main unit110 receives user input from the controllers 120, as described in moredetail below.

FIG. 2 is a detailed view of one of the controllers 120. The controller120 includes one or more user input interfaces, such as buttons and/orjoysticks that allow a user to input various game commands. Thecontroller 120 transmits signals regarding the state of the inputinterfaces to the main unit 110. For example, the controller 120transmits a signal to the main unit 110 in response to actuation of theuser input interfaces, such as pressing a button or moving a joystick onthe controller 120.

The controller 120 preferably includes a start button 210 that allows auser to transmit a start command for a game program to the main unit110. A selection button 215 on the controller 120 allows the user toselect various game modes using a menu displayed on the AV output device135. A mode selection button 220 can be used by the user to varycontroller modes between digital and analog. An LED lamp 225 indicates acontroller mode (analog or digital). The controller 120 also includes aleft button 230 and a right button 235 that can be associated withinputs with respect to a game application.

The controller 120 includes a first game operational input 240 and asecond game operational input 245. The second game operational input 245preferably includes a plurality of controller buttons, including a firstcontroller button 250, a second controller button 255, a thirdcontroller button 260, and a fourth controller button 265. Preferably,each controller button 250, 255, 260, 265 is associated with anidentifier that may be used to identify and distinguish the controllerbuttons 250, 255, 260, 265. The identifier could comprise a symbol thatis labeled on or near the associated controller button. For example, thefirst controller button 250 is associated with a triangle symbol, thesecond controller button 255 is associated with a circle symbol, thethird controller button 260 is associated with an X symbol, and thefourth controller button 265 is associated with a square symbol.Preferably each symbol to be associated with a controller button islabeled on or near the corresponding controller button.

The controller 120 also includes first and second directional inputinterfaces, such as a first joystick 270 and a second joystick 275. Thefirst and second joysticks 270, 275 preferably comprise sticks that maybe positioned in a neutral position or moved into a non-neutral positionby moving the stick in a particular direction. Movement of the joysticks270, 275 into a non-neutral position in a given direction preferablyresults in the controller 120 outputting a corresponding directionalcommand to the main unit 110 in a digital format, causing acorresponding movement in the video game environment. It will beappreciated that the configuration of the controller 120 could bemodified to include more or less user input interfaces and also to varythe locations of the input interfaces.

FIG. 3 is a block diagram of an exemplary hardware configuration of theentertainment system shown in FIG. 1. The video game system 100 includesa central processing unit (CPU) 300 that is associated with a mainmemory 305. The CPU 300 operates under control of programming steps thatare stored in the OS-ROM 360 or transferred from a game program storagemedium to the main memory 305. The CPU 300 is configured to processinformation and to execute instructions in accordance with theprogramming steps.

The CPU 300 is communicatively coupled to an input/output processor(IOP) 320 via a dedicated bus 325. The IOP 320 couples the CPU 300 to anOS ROM 360 comprised of a non-volatile memory that stores programinstructions, such as an operating system. The instructions arepreferably transferred to the CPU via the IOP 320 at start-up of themain unit 110.

The CPU 300 is communicatively coupled to a graphics processing unit(GPU) 310 via a dedicated bus 315. The CPU 310 is a drawing processorthat is configured to perform drawing processes and formulate images inaccordance with instructions received from the CPU 300. For example, theCPU 310 may render a graphics image based on display lists that aregenerated by and received from the CPU 300. The CPU may include a bufferfor storing graphics data. The GPU 310 outputs images to the AV outputdevice 135.

The IOP 320 controls the exchange of data among the CPU 300 and aplurality of peripheral components in accordance with instructions thatare stored in an IOP memory 330. The peripheral components may includeone or more controllers 120, a memory card 340, a USB 345, and an IEEE1394 serial bus 350. Additionally, a bus 355 is communicatively coupledto the IOP 320. The bus 355 is linked to several additional components,including the OS ROM 360, a sound processor unit (SPU) 365, an opticaldisc control unit 375, and a hard disk drive (HDD) 380.

The SPU 365 is configured to generate sounds, such as music, soundeffects, and voices, in accordance with commands received from the CPU300 and the IOP 320. The SPU 365 may include a sound buffer in whichwaveform data is stored. The SPU 365 generates sound signals andtransmits the signals to the speakers 145 (FIG. 1).

The disc control unit 375 is configured to control the program reader150 (FIG. 1), which can comprise, for example, an optical disk drivethat accepts removable storage media such as a magnetic floppy disk, anoptical CD-ROM disc, a CD-R disc, a CD-RW disc, a DVD disk, or the like.

The memory card 340 may comprise a storage medium to which the CPU 300may write and store data. Preferably, the memory card 340 can beinserted and removed from the IOP 320. A user can store or save gamedata using the memory card 340. In addition, the video game system 100is preferably provided with at least one hard disk drive (HDD) 380 towhich game data may be written and stored.

A data I/O interface, such as an IEEE 1394 serial bus 350 or a universalserial bus (USB) 345, is preferably communicatively coupled to the IOP320 in order to allow data to be transferred into and out of the videogame system 100.

The video game system 100 is configured to implement a game that isrealized when the CPU 300 executes program instructions that are readfrom a program storage medium loaded in the main unit 110. FIG. 4 showsa video frame 405 of an image displayed on the display screen 140 of theAV output device 135 in the course of a combat scenario of the game. Theimage includes a portion of a game environment or virtual environment410 that includes an initial object, such as a player character 415, andone or more candidate objects, such as opponents or enemy characters420. The enemy characters can comprises other more abstract inanimateobjects in the virtual environment 410. The player character 415comprises a character object that is controlled by a game player. Theenemy characters 420 comprise objects that are controlled by the CPU 300or by another game player and are candidates for designation and actionrelating to the initial object, as described below. The enemy characters420 are antagonistic to the player character.

For ease of illustration, the player character 415 is represented by acircle symbol and the enemy characters 420 are each represented by across symbol. However, in an actual game image the player character 415and enemy characters 420 are preferably represented by images thatresemble human, animal and/or monster anatomies.

In accordance with one aspect of the invention, the game player candesignate candidate objects, such as by targeting enemy characters 420for attack. The game player can then cause a predetermined action fromthe initial object with respect to the candidate object, such as causingthe player character 415 to initiate an attack on the targeted enemycharacters. When a player character initiates an attack on an enemycharacter, the player character attempts to inflict damage or harm onthe enemy character. A targeted enemy character 420 is an enemycharacter 420 that may be attacked by the player character 415 when acontroller button associated with the targeted enemy character ispressed. When one character successfully attacks another character, thecharacter that was attacked incurs damage. Other video game scenariosmay involve the player character engaging the designated candidateobjects.

The targeting and attacking process generally proceeds as follows.First, one or more candidate objects comprised of enemy characters 420may satisfy certain criteria for targeting such as being within adesignation range, or target range, of the player character 415. This isfurther described below. The CPU 300 then classifies the appropriateenemy character(s) as a target and associates a controller inputinterface, such as a controller button on the controller 120, with thetargeted enemy character(s). The game player can then actuate the inputinterface that is associated with the targeted enemy character, such asby pressing the controller button on the controller. In response toactuation of the input interface, the CPU 300 causes the playercharacter to initiate an attack on the targeted enemy character. Theplayer may be confident of a successful attack with a single actuationof the controller button if the targeted enemy is within an attack rangeof the player character. Advantageously, multiple enemies may betargeted at the same time. The game player can cause the enemy characterto attack any targeted enemy character by actuating the controllerbutton associated with the targeted enemy character.

Preferably, the CPU 300 manages the player character 415 as a playerobject comprised of a data structure that contains a profile of theplayer character. The player object data structure preferably includesas data a character identifier, a mode identifier, weapon data,attribute data, location data, and movement speed data. The characteridentifier comprises a code for identifying the player character object.Preferably, the CPU 300 maintains a similar data structure for eachenemy character 420.

The mode identifier identifies the current mode of the player character415. As described more fully below, the player character 415 can enterinto a combat mode wherein the player character 415 can target andattack one or more enemy characters 420.

The active weapon data includes data regarding weapons that areavailable to the player character. The weapon data preferably includes alist of weapons that are in inventory as well as an identifier of aweapon for which the player character 415 is currently equipped.Preferably, the game player may equip the player character with a weaponusing the controller 120.

The attribute data preferably relates to attributes of the playercharacter, such as the player character's strength, vitality, dexterity,etc. Preferably, the attribute data also includes the current state ofthe character with respect to damage and fatigue.

The location data preferably comprises data regarding the location ofthe player character in the virtual environment 410. The location datamay comprise coordinate data that indicates the location of the playercharacter.

The movement speed data is indicative of a speed at which the playercharacter moves in response to the video game player commands. The videogame player can preferably move the player character 415 around thevirtual environment 410 by actuating an input interface on thecontroller 120, such as by moving the first joystick 270 on thecontroller 120 (FIG. 2). The player character 415 preferably moves in adirection that corresponds to the direction that the player moves thefirst joystick 270. For example, the player character 415 preferablymoves in an upward direction in the virtual environment when the gameplayer moves the first joystick 270 in an upward direction. In anotherembodiment, the player character 415 moves in a frontward direction whenthe joystick 270 is moved upward. In another embodiment, the playercharacter 415 moves in a direction that a first-person virtual camera isfacing when the joystick 270 is moved upward.

With reference to FIG. 4, the player character 415 preferably has afront face that points in a particular direction, as exhibited by thefront face indicator 430. In the illustrated embodiment, the front faceindicator 430 comprises an arrow that shows which direction the playercharacter is facing. However, the front face could also be indicated bythe anatomy of the player character. For example, if the playercharacter were in the shape of a human, then the front face could beindicated by a drawing rendition of a human having a face that points ina particular direction. When the game player moves the player character415, the front face is reoriented to face in the direction that theplayer character is being moved.

As mentioned, the game player can preferably use the controller 120 tocause the player character 415 to enter into a combat mode. In combatmode, the game player can cause the player character 415 to initiateattacks on the enemy characters 410 and to defend against attacksinitiated by the enemy characters 420. The game player preferablyinitiates combat mode by actuating an input interface on the controller120, such as by moving the second joystick 275 (FIG. 2) in a desireddirection.

When the second joystick 275 is moved away from a neutral position, adesignation range indicator in the form of a target range indicator 440is preferably displayed on the display screen 140. The target rangeindicator 440 comprises a visual indication of a target range for theplayer character 415. Preferably, the game player can target enemycharacters 420 that enter or intersect the target range indicator 440 onthe display screen. As mentioned, once an enemy character is targeted,the game player can cause the player character 415 to initiate an attackon the targeted enemy character by pressing a controller button that isassociated with the enemy character. Preferably, the player charactercan successfully attack a targeted enemy character when the targetedenemy character is within the attack range of the player character'sweapon.

In one embodiment, the target range indicator 440 comprises a boundedarea that extends a distance radially outward from a base 442. Thebounded area encompasses a predetermined region of the game environmentshown on the display screen. The location of the base 442 preferablycoincides with the location of the player character 415. Thus, as theplayer character 415 moves in the game environment, the base 442 followsthe movement of the player character 415, with the target area 440always extending radially outward from the base 442. The target rangeindicator 440 could have various shapes that encompass a given area ofthe display screen. The target range indicator could also comprise asingle line that extends outwardly from the base 442.

Preferably, a portion of the target range indicator 440 includes anattack range indicator 450 comprised of a visual indication of the rangethat a single player attack move will cover.

When first activated, the target range indicator 440 preferably extendsradially outward from the player character 415 in the direction that thejoystick 275 has been moved. For example, in FIG. 4 the target rangeindicator 440 extends to the left and downward from the player character415, which indicates that the game player moved the joystick 275 to theleft and downward. The game player can change the orientation of thetarget range indicator 440 in two ways. First, the game player couldreturn the joystick 275 to the neutral position, which preferably causesthe target range indicator 440 to be removed from display. The gameplayer could then move the joystick 275 in a different direction therebycausing the target range indicator 440 to be displayed along the newdirection that the joystick 275 was moved.

Alternately, the game player could re-orient the target range indicatorby maintaining the joystick 275 in a non-neutral position and thensweeping the joystick 275 in a circle or a portion thereof. The targetrange indicator 440 preferably then moves in conjunction with movementof the joystick 275. For example, if the game player sweeps the joystick275 in a circular motion, the target range indicator 440 will sweeparound the player character 415 in a circular motion. This type ofmovement of the target range indicator 440 is referred to herein as“sweeping” of the target range indicator 440. The direction of thetarget range indicator 440 and the front face direction of the playercharacter do not necessarily coincide with one another.

In one embodiment, the size and shape of the target range indicator 440is a function of the player character's attack capabilities. The playercharacter's attack capabilities could vary depending on the weapon (ifany) with which the player character 415 is equipped and the personalprofile of the player character, such as the strength of the playercharacter. In one embodiment, the current state of the player character,such as fatigue state or damage state, could also affect the size andshape of the target range indicator 440.

In one embodiment, the size of the target range indicator 440 dependssolely on the attack capabilities of the weapon with which the playercharacter is equipped. The attack capabilities of a weapon include thephysical range of the weapon and the number of enemies that can besimultaneously attacked with the weapon. Each weapon preferably candamage a maximum number of enemies for a single swing or attack move ofthe weapon. Certain weapons may provide the player character the abilityto attack several enemies with one swing or attack of the weapon.Preferably, the size and area covered by the target range indicator 440increases as the attack capabilities of the weapon increase.

FIG. 5 shows three examples of differently sized target range indicators440. The target range indicator 440 a is for a sword weapon, the targetrange indicator 440 b is for a taiaha weapon (which can attack moreenemies at one time than a sword), and the target range indicator 440 cis for an axe (which can attack even more enemies than a taiaha). Thesize of the target range indicator 440 varies as a function of theweapon. It will be appreciated that weapons named herein are exemplaryand that the particular type of weapon could vary.

As shown in FIG. 5, the attack range indicator 450 for each target rangeindicator 440 is sized to encompass up to a maximum number of enemycharacters 420. The number of enemy characters that fit within an attackrange indicator indicates the attack capabilities of the correspondingweapon. For example, only one enemy character fits within the attackrange indicator 450 a for the sword. This indicates that the sword canonly target one enemy character at a time. On the other hand, the attackrange indicator 450 c for the axe holds up to 9 enemy characters. Thisindicates that an axe can target a maximum of 9 enemy characters at onetime (3 enemy characters per controller button). The attack rangeindicator 450 b for the taiaha holds up to 6 enemy characters,indicating that the taiaha can target up to 6 enemy characters at once(2 enemy characters per attack button).

FIG. 6 is a flow diagram that illustrates the computer operations bywhich the game player may target one or more enemies for attack by theplayer character 415. In the first operation, represented by the flowdiagram box numbered 605, the game player actuates the joystick 275 onthe controller 120, such as by moving the joystick 275 in a particulardirection. The CPU 300 detects that the joystick 275 has been actuated.

In the next operation, represented by the flow diagram box numbered 610,the CPU 300 causes the target range indicator 440 to be displayed inresponse to movement of the joystick 275. As mentioned, the target rangeindicator 440 extends radially outward from the player character 415 ina direction that corresponds to the direction in which the joystick 275was moved. With reference to FIG. 7, the joystick 275 on the controller120 has been moved upward and to the left, as exhibited by the arrowprotruding from the joystick 275. Likewise, the target range indicator440 also extends radially upward and to the left with respect to theplayer character 415.

A joystick is preferably used to activate the target range indicator 440because a joystick allows the player to both activate the target rangeindicator 440 and specify a direction for the target range indicator 440using a single input interface. However, it is envisioned that the gameplayer could also activate the target range indicator 440 in othermanners, such as by pressing a button on the controller 120 or byactuating a combination of input interfaces.

In the next operation, represented by the flow diagram box numbered 615,at least one enemy character 420 a intersects at least a portion of thearea covered by the target range indicator 440. The CPU 300 could detectsuch intersection, for example, by monitoring the location coordinatesof the enemy characters 420. The CPU 300 could periodically compare thelocation coordinates of each enemy character 420 with respect to thearea of the target range indicator 440. The CPU 300 could then determinewhether there is any overlap between an enemy location and the areaencompassed by the target range indicator 440.

An enemy character 420 could come to intersect the target area 440 inseveral ways. In a first way, the game player could activate the targetrange indicator 440 so that it initially intersects an enemy character420 by simply moving the joystick 275 in the direction of the enemycharacter 420. The target range indicator 440 would thus initially bedisplayed in intersection with an enemy character 420, such as is shownin FIG. 7.

In another way, the game player could activate the target rangeindicator 440 so that it initially does not intersect with an enemycharacter 420, such as is shown in FIG. 4. The game player could thensweep the target range indicator 440 using the joystick 275 to changethe orientation of the target range indicator 440. In this manner, thegame player may cause the target range indicator 440 to intersect anenemy character 420 that is located along the sweep path of the targetrange indicator 440.

An enemy character 420 could also come to intersect the target rangeindicator 440 through movement of the location of the player character415, movement of the location of an enemy character 420, or acombination thereof. For example, the game player could fix the positionof the target range indicator 440 by holding the joystick 275 in a fixedposition. The game player could then rely on the movement of an enemycharacter to bring the enemy character within the region of the targetrange indicator 440. Advantageously, the various ways of intersectingthe enemy characters with the target range indicator 440 adds astrategic facet to the game, as the game player could manually choose aspecific enemy target or could rely on enemy movement to designatetargets.

The CPU 300 preferably maintains in memory one or more target slots thatare used to keep track of targeted enemies. A target slot could comprisea memory location that can store the identifier codes of one or moreenemies. When one or more enemy character 420 intersects the targetrange indicator 440, the CPU 300 considers whether to assign the enemycharacters 420 to a target slot. In one embodiment, the total number oftarget slots is less than or equal to the number of controller buttonson the controller 120. In the illustrated example, there are 4controller buttons 250, 255, 260, 265, so there can be a maximum of 4target slots available at one time. It will be appreciated that lessthan the total quantity of controller buttons 250, 255, 260, 265 couldbe used for attack and that any combination of the controller buttons250, 255, 260, 265 could be used for attack.

With reference again to FIG. 6 the next operation is represented by theflow diagram decision box numbered 620. After an enemy character 420 hasintersected the target range indicator 440, the CPU 300 determineswhether any enemy characters 420 have already been targeted. That is,the CPU 300 determines whether any target slots have yet been assignedto an enemy character 420. If the CPU 300 determines that at least onetarget slot is already filled, then the CPU 300 proceeds to theoperation described in the flow diagram of FIG. 9, as represented by theflow diagram box numbered 625. The flow diagram of FIG. 9 is describedin more detail below.

However, if no enemy characters 420 have yet been targeted, then in thenext operation, the CPU 300 targets the enemy character 420 a byassigning the enemy character 420 a to a first target slot. This isrepresented by the flow diagram box 627. This could be accomplished, forexample, by the CPU 300 writing the identifier code for the enemycharacter 420 a to a predetermined memory location that is associatedwith the first target slot.

It is possible that plural enemy characters 420 may simultaneouslyintersect the target range indicator 440. If multiple enemiessimultaneously intersect the target range indicator 440, then the CPU300 can assign multiple enemy characters 420 to the same target slot asa group. The maximum number of enemy characters 420 that can be assignedto a single target slot is preferably limited by the attack capabilityof the player character's weapon. For example, if the player character420 is using a sword, then only one enemy character 420 can be assignedto a target slot even if more than one enemy character 420 isintersecting the target range indicator 440. This is because the swordcan only attack one enemy character 420 at one time. However, if theplayer character 415 is using the taiaha, then more than one enemycharacter 420 can be assigned to a target slot as long as the enemycharacters 420 are simultaneously intersecting the target rangeindicator 440.

An example of this situation is shown in FIG. 8, where a pair of enemycharacters 420 a and 420 b is located at least partially within the areaencompassed by the target range indicator 440. If the player characteris using the taiaha, then both enemy characters 420 a and 420 b will beassigned to the same target slot as the taiaha can assign up to twoenemy characters at once to a controller button. However, if the playerwere using the sword, then only one enemy character 420 would beassigned to the target slot. Preferably, the CPU 300 first assignstarget slots to the enemy characters 420 that are nearest the playercharacter 415. The game player could sweep the target range indicator440 to include multiple enemy characters 420.

In the next operation, represented by the flow diagram box numbered 630,the CPU 300 associates the enemy(s) in the first target slot with one ofthe controller buttons 250, 255, 260, or 265. This may be accomplished,for example, by the CPU 300 writing the enemy character identifier codesto a memory location that is associated with a particular controllerbutton. As described below with respect to FIG. 11, the game player canthen cause the player character 415 to attack an enemy character bypressing the controller button that is associated with the enemycharacter.

Preferably, the target slots are associated to the controller buttons250, 255, 260, 265 according to a predetermined hierarchy. That is, thetarget slots are always associated to the controller buttons 250, 255,260, 265 in a predetermined order. For the controller 120 shown in FIG.2, the first controller button 250 is the first in the order, the secondcontroller button 255 is the second in the order, the third controllerbutton is the third in the order, and the fourth controller button 265is the last in the order. It will be appreciated that the order ofpriority may be varied and that the number of controller buttons thatare used for attacking could also be varied.

In the next operation, represented by the flow diagram box numbered 635,the CPU 300 causes a visual controller button indication to be displayedin association with the targeted enemy character 420 a. The visualcontroller button indication provides the game player with an indicationof which controller button has been associated with the targeted enemycharacter. The visual indication could be anything that indicates to theplayer that an enemy character is targeted and that also indicates theassociated controller button to the player. For example, the visualindication could comprise the targeted enemy character changing color orglowing in a color that corresponds to the color of a controller button.

In one embodiment, the visual indication comprises an attack icon 710comprised of a symbol that is associated with or identifies a controllerbutton 250, 255, 260, or 265. Preferably, the game player can look atthe attack icon 710 and easily identify which controller button 250,255, 260, or 265 is associated with the attack icon 710. Preferably, theattack icon 710 is visually similar or identical to the identifier thatis labeled on the controller button that was associated with therecently targeted enemy character 420 a. In the example shown in FIG. 7,the first controller button 250 shown in FIG. 2 is associated with thetargeted enemy character 420 a. The first controller button 250 has atriangle for an identifier symbol. Thus, the attack icon 710 alsocomprises a triangle. If a group of enemy characters 420 are in the sametarget slot, then the attack icon 710 is displayed over each targetedenemy character in the group. Thus, in FIG. 8, the triangle attack icon710 appears over enemy characters 420 a and 420 b. It will beappreciated that the attack icon could comprise any symbol that willhelp the user to identify which controller button has been associatedwith a targeted enemy character.

With reference again to FIG. 6, in the next operation, represented bythe flow diagram box numbered 640, the CPU 300 reorients the playercharacter 415 to face toward the recently-targeted enemy character 420a. An example of this is shown in FIG. 7, where the front face indicator430 points toward the recently targeted enemy character 420 a. Thisindicates that the player character 415 is now facing the enemycharacter 420 a. If a group of enemy characters 420 has been targeted,then the player character 415 preferably faces the nearest enemycharacter 420 in the group. Alternately, the player character 415 couldface toward a predetermined location with respect to the group, such asthe center point of the group. The operation then ends.

As discussed above, the flow diagram shown in FIG. 9 describes thecomputer operations that are performed in the situation where at leastone target slot is already filled and the user attempts to target anadditional enemy. In the first operation, represented by the flowdiagram box numbered 900, the CPU 300 determines whether any targetslots are available. A target slot is available if it is not alreadyfilled with an identifier code for an enemy character. If there are notany target slots available, this indicates that all target slots havealready been filled with enemies.

If this is the case, the CPU 300 then proceeds to the next operation,represented by the flow diagram box numbered 905. In this operation, theenemy 920 a is not assigned to a target slot. Rather, the game playermust wait until a target slot is free before another enemy can betargeted. Preferably, there are several ways that an assigned targetslot can be freed for reassignment. One way is for the enemy characterto be killed, such as a result of an attack by the player character 415.A target slot may also be freed if the enemy character moves apredetermined distance away from the player character. If a group ofenemy characters are assigned to one target slot, then the CPU 300 mustremoved all the enemy characters in the group from the target slotbefore the target slot is classified as free. Thus, all of the enemycharacters would have to be killed or moved away from the playercharacter the predetermined distance. When all enemy characters 420 havebeen removed from a target slot, then the target slot and the associatedcontroller button are free for reassignment.

If the CPU 300 determines that there are indeed target slots available,then the CPU 300 proceeds to the next operation, represented by the flowdiagram box numbered 910. In this operation, the CPU 300 targets theenemy character by assigning the enemy character to the next availabletarget slot. This is described with reference to FIG. 10. FIG. 10 showsthat a second enemy character 420 b has intersected the target rangeindicator 440. Furthermore, at least one other enemy character, enemycharacter 420 a, has already been targeted, as indicated by the attackicon 710 a over the enemy character 420 a. In this example, the CPU 300would assign the enemy character 420 b to the next available targetslot.

With reference again to FIG. 9, in the next operation, represented bythe flow diagram box numbered 915, the CPU 300 associates the targetedenemy(s) in the recently-filled target slot with one of the controllerbuttons 250, 255, 260, or 265 according to the aforementioned priorityorder. In the example shown in FIG. 10, only the first controller button250 has been associated with an enemy and controller buttons 255, 260,and 265 are free. The second controller button 255 is thus the nextavailable controller button in the priority order. Thus, the CPU 300associates the targeted enemy character 420 b with the second controllerbutton 255. If the second controller button 255 had already beenassociated with an enemy character 420, then the CPU 300 would haveassociated the enemy character 420 b with the next available controllerbutton in the priority order.

In the next operation, represented by the flow diagram box numbered 920,the CPU 300 causes an attack icon 710 b associated with the secondcontroller button 255 to be displayed over the targeted enemy character420 b. In the case shown in FIG. 10, the second controller button 255was associated with the targeted enemy character 420 b. The secondcontroller button 255 has a circle for an identifier symbol. Thus, theattack icon 710 b is in the shape of a circle. The operation then ends.

FIG. 11 shows a flow diagram that illustrates the computer operations bywhich the game player may cause the player character to attack a targetenemy. The process is further described with respect to FIG. 12, wherethere is illustrated a player character 415 and several enemy characters420, including two targeted enemy characters 420 a and 420 b that areassociated with the first controller button 250 and the fourthcontroller button 265, respectively.

In the first operation, represented by the flow diagram box numbered1105, the CPU 300 detects that the game player actuates an inputinterface that is associated with a targeted enemy 420. For example,with respect to FIG. 12, the game player could press either the firstcontroller button 250, which is associated with the targeted enemycharacter 420 a, or the fourth controller button 265, which isassociated with the targeted enemy character 420 b.

In the next operation, represented by flow decision box numbered 1110,the CPU 300 determines whether the targeted enemy is in range forattack. As mentioned, the player character 420 uses weapons, weaponsthat each have a particular attack capability, including an attackrange. If the targeted enemy character is not within the playercharacter's attack range, the CPU 300 causes the player character toface the targeted enemy character without initiating an attack. Thisoperation is represented by the flow diagram box numbered 1115. In theexample shown in FIG. 12, this would correspond to the game playerpressing the first controller button 250, which is associated with thetargeted enemy character 420 a. The front face indicator 430 pointstoward the enemy character 420 a, indicating that the player character415 is facing the enemy character 420 a. The enemy character 420 a ispresumed to be out of the player character's attack range.

However, if a targeted enemy character is within range, then pressing ofthe controller button associated with the targeted enemy charactercauses the player character to attack the targeted enemy character. Thisis represented by the flow diagram box numbered 1120 in FIG. 11. Withreference to FIG. 12, this would correspond to the game player pressingthe fourth controller button 265, which is associated with the targetedenemy character 420 b. If the game player presses the fourth controllerbutton, then the player character 415 will initiate an attack on theenemy character 420 b. The enemy character 420 b is assumed to be withinthe player character's attack range.

Advantageously, the player character does not need to be facing an enemycharacter in order to attack an enemy character. Preferably, the playercharacter can initiate attacks on enemy characters even when not facingthe enemy character. For example, the player character could initiate abehind-the-back sword swing on an enemy character located behind theplayer character, or a sideways swing on an enemy character to the side.In such a case, the CPU 300 would initiate an animation wherein theplayer character attacks the enemy character while not facing the enemycharacter. This advantageously increases the number of available attackmoves, which increases enjoyability of the game. It also makes it easierfor a game player to attack specific enemy characters. The game playercan cause the player character to attack any targeted enemy character bysimply pressing the controller button associated with the target,regardless of whether the player character is actually facing the enemycharacter. Preferably, after the first attack is initiated on an enemycharacter, the CPU 300 causes the player character to turn and face theenemy character, as represented by the flow diagram box numbered 1115.

The game player can preferably cause the player character to initiatespecial attacks by pressing a combination of buttons on the controller.In one embodiment, the game player uses the unassigned controllerbuttons, if any, to initiate special attacks. For example, in FIG. 12,the second and third controller buttons 255, 260 are not associated withany targets. If the game player presses one of the unassigned buttonsimmediately after pressing an assigned controller button, then the CPU300 causes the player character to initiate a special attack on thetargeted enemy character. A special attack could comprise a combinationof attack moves or one or more unique attack moves. For example, aparticular player character could have a special signature move that isunique to the player character, such as a unique swing or flourish move.

If the game player presses a controller button that is associated with agroup of player characters, then the player character preferablyattempts to attack as many of the enemy characters in the group aspossible. For example, if the player character is using a taiaha, thenthe player character attempts to attack the maximum number of enemycharacters that can be attacked with a taiaha. The game player canmaneuver the player character into a location that will maximize theattack range.

In addition to providing an indication of the associated controllerbutton, the attack icon 710 (FIG. 7) preferably provides statusindications to the game player. The CPU 300 preferably causes the attackicon for an enemy to change visual state in response to the status of anenemy character. Preferably, an enemy character's attack icon 710 is ina first visual state, such as in a brightened state, when the enemycharacter is in range to be attacked by the player character. The attackicon 710 changes to a second visual state, such as a semitransparentstate, if the associated enemy target is out of range of attack for theplayer character. The attack icon could also change to a third visualstate, such as a flashing state, when the associated enemy target isclose enough to be hit but will be missed if attacked. In oneembodiment, the attack icon changes to the flashing state to indicatethat the enemy is about to be de-targeted, such as when the enemycharacter is about to die or if the enemy character is about to move outof attack range.

FIG. 13 is a block diagram that shows an exemplary software structurefor implementing the game program described herein. A virtualenvironment data base 1305 stores data that describes the virtualenvironment. The virtual environment could be a finite, two-dimensionalspace that is managed as an X-Y coordinate system. Thus, any position inthe virtual environment can be specified in the form of coordinates(x,y). The virtual environment could be divided into one or more blocks,wherein each block has a set of attributes that describe a portion ofthe virtual environment. The attributes could determine geographicalinformation of the virtual environment and could comprise code forexpressing a road, a river, a hill, a forest, etc. The blocks could alsoinclude image data for creating an image associated with the block.

The software structure also includes an image forming module 1310 thatcommunicates with the virtual environment database 1305. The imageforming module 1310 provides position and color information for the GPU.

An operation receiving module 1315 communicates with the controller 120.The operation receiving module 1315 accepts signals from the controller120 regarding the states of the input interfaces on the controller 120.The operation receiving module 1315 determines an action of the playercharacter in accordance with the game player actuating the controller120. The operation receiving module 1315 determines movement directionof the player character through the virtual environment and alsodetermines when the player character should initiate attacks. Themovement directions of the joysticks 270 are preferably made tocorrespond to corresponding movements of the player character. Theoperation receiving module 1315 preferably also determines when thetarget range indicator 440 should be displayed in response to actuationof an input interface on the controller 120.

A player position calculation module 1320 performs a process forcalculating the position and movement of the player character in thevirtual environment. In response to signals from the operation receivingmodule 1315, the player position calculation module 1325 periodicallycalculates the position of the player character with respect to aprevious position in the virtual environment. The player positioncalculation module 1315 then determines a movement direction for theplayer character.

A display control module 1330 accepts image information, such asposition and color information, from the image forming module 1310 andthe player position calculation module 1320 and then forwards renderinginstructions to the GPU for processing.

The software structure also includes an enemy control module 1335 thatmaintains the position of each enemy character. The enemy control module1335 also controls movement of the enemy characters through the virtualenvironment.

The present invention has been described above in terms of a presentlypreferred embodiment so that an understanding of the present inventioncan be conveyed. There are, however, many configurations forentertainment systems not specifically described herein but with whichthe present invention is applicable. The present invention shouldtherefore not be seen as limited to the particular embodiments describedherein, but rather, it should be understood that the present inventionhas wide applicability with respect to entertainment systems and videogames generally. All modifications, variations, or equivalentarrangements and implementations that are within the scope of theattached claims should therefore be considered within the scope of theinvention.

1. A method for causing a player object to target and attack one or moreenemy objects in a virtual environment, comprising: displaying a targetrange indicator that defines the target range of the player object, thetarget range indicator comprising a bounded area that encompasses aregion of a display screen; maneuvering the target range indicatortoward a first enemy object so that the first enemy object is at leastpartially located within the region of the display screen that isencompassed by the bounded area of the target range indicator;associating the first enemy object with a first button on an inputdevice according to a button hierarchy, the button hierarchyprioritizing plural buttons on the input device in a predeterminedpriority order wherein the first button is the first button in thepriority order; maneuvering the target range indicator toward a secondenemy object so that the second enemy object is at least partiallylocated within the region of the display screen that is encompassed bythe bounded area of the target range indicator; associating the secondenemy object with a second button on the input device according to thebutton hierarchy, wherein the second button is the next button in thepriority order after the first button; and causing the player object toattack an enemy object when the button associated with the enemy objectis pressed.
 2. The method of claim 1, further comprising displaying theplayer object on the display screen.
 3. The method of claim 2, whereinthe target range indicator extends radially outward from the playerobject on the display screen.
 4. The method of claim 1, furthercomprising displaying an attack icon over an enemy object when the enemyobject is associated with a controller button, the attack iconcomprising a symbol that identifies the associated controller button. 5.The method of claim 1, further comprising causing the player object toattack an enemy object when the button associated with the enemy objectis pressed regardless of whether the player object is facing the enemyobject being attacked, wherein the player object faces a particulardirection.
 6. The method of claim 1, further comprising equipping theplayer object with a weapon, wherein the size of the region of thedisplay screen encompassed by the bounded area of the target rangeindicator is dependent on the weapon.
 7. The method of claim 1, whereinthe target range indicator is displayed in response to moving a joystickon the input device in a first direction and wherein the target rangeindicator extends in a direction that corresponds to the first directionthat the joystick was moved.
 8. A machine-readable medium havingembodied thereon a program, the program being executable by a machine toprovide a method for causing a player object to target and attack one ormore enemy objects in a virtual environment, the method comprising:displaying a target range indicator that defines the target range of theplayer object, the target range indicator comprising a bounded area thatencompasses a region of a display screen; maneuvering the target rangeindicator toward a first enemy object so that the first enemy object isat least partially located within the region of the display screen thatis encompassed by the bounded area of the target range indicator;associating the first enemy object with a first button on an inputdevice according to a button hierarchy, the button hierarchyprioritizing plural buttons on the input device in a predeterminedpriority order wherein the first button is the first button in thepriority order; maneuvering the target range indicator toward a secondenemy object so that the second enemy object is at least partiallylocated within the region of the display screen that is encompassed bythe bounded area of the target range indicator; and associating thesecond enemy object with a second button on the input device accordingto the button hierarchy, wherein the second button is the next button inthe priority order after the first button; and causing the player objectto attack an enemy object when the button associated with the enemyobject is pressed.
 9. The machine-readable medium of claim 8, whereinthe method further comprising displaying the player object on thedisplay screen.
 10. The machine-readable medium of claim 9, wherein thetarget range indicator extends radially outward from the player objecton the display screen.
 11. The machine-readable medium of claim 8, themethod further comprising displaying an attack icon over an enemy objectwhen the enemy object is associated with a controller button, the attackicon comprising a symbol that identifies the associated controllerbutton.
 12. The machine-readable medium of claim 8, the method furthercomprising causing the player object to attack an enemy object when thebutton associated with the enemy object is pressed regardless of whetherthe player object is facing the enemy object being attacked, wherein theplayer object faces a particular direction.
 13. The machine-readablemedium of claim 8, the method further equipping the player object with aweapon, wherein the size of the region of the display screen encompassedby the bounded area of the target range indicator is dependent on theweapon.
 14. The machine-readable medium of claim 8, wherein the targetrange indicator is displayed in response to moving a joystick on theinput device in a first direction and wherein the target range indicatorextends in a direction that corresponds to the first direction that thejoystick was moved.
 15. A system for targeting one or more enemy objectsfor attack with respect to a player object in a virtual environment,comprising: means for displaying a target range indicator that definesthe target range of the player object, the target range indicatorcomprising a bounded area that encompasses a region of a display screen;means for maneuvering the target range indicator toward a first enemyobject so that the first enemy object is at least partially locatedwithin the region of the display screen that is encompassed by thebounded area of the target range indicator; means for associating thefirst enemy object with a first button on an input device according to abutton hierarchy, the button hierarchy prioritizing plural buttons onthe input device in a predetermined priority order wherein the firstbutton is the first button in the priority order; means for maneuveringthe target range indicator toward a second enemy object so that thesecond enemy object is at least partially located within the region ofthe display screen that is encompassed by the bounded area of the targetrange indicator; means for associating the second enemy object with asecond button on the input device according to the button hierarchy,wherein the second button is the next button in the priority order afterthe first button; means for causing the player object to attack an enemyobject when the button associated with the enemy object is pressed. 16.The system of claim 15, further comprising means for displaying theplayer object on the display screen.
 17. The system of claim 16, whereinthe target range indicator extends radially outward from the playerobject on the display screen.
 18. The system of claim 15, furthercomprising means for displaying an attack icon over an enemy object whenthe enemy object is associated with a controller button, the attack iconcomprising a symbol that identifies the associated controller button.19. The system of claim 15, further comprising means for causing theplayer object to attack an enemy object when the button associated withthe enemy object is pressed regardless of whether the player object isfacing the enemy object being attacked, wherein the player object facesa particular direction
 20. The system of claim 15, further comprisingmeans for equipping the player object with a weapon, wherein the size ofthe region of the display screen encompassed by the bounded area of thetarget range indicator is dependent on the weapon.
 21. The system ofclaim 15, wherein the target range indicator is displayed in response tomoving a joystick on the input device in a first direction and whereinthe target range indicator extends in a direction that corresponds tothe first direction that the joystick was moved.